Prior art wireless communication systems are defined in IEEE protocols for 802.11b. IEEE 802.11b is an example of a spread spectrum wireless protocol whereby a transmitter emits a typically isotropic or multidirectional transmission of a sequence of baseband codewords translated in frequency to a carrier frequency, where the codewords are phase modulated according to a known sequence, which is referred to as a chipping code. For 1 Mb and 2 Mb IEEE 802.11b data rates, the chipping code is a Barker code, which has the properties of maximum self-correlation and minimum cross-correlation. When a typical IEEE 802.11b receiver is placed within a reception distance from the source, it is common for a plurality of signals to arrive at the receiver. These signals may consist of a first signal which travels a shortest path, followed by a plurality of reflected signals which have path lengths longer than the shortest path. Occasionally, the shortest path will be through an attenuating medium, such that the shortest path does not correspond to the strongest signal. The receiver then must recover this plurality of signals and apply some method of filtering or reconstruction to regenerate the transmitted codeword. One prior art method uses channel sounding, whereby the communications channel is characterized by sending a known signal such as a preamble. Then applying an inverse filter function compensates the channel for the reflections, thereby restoring the channel. The process for generating the inverse filter coefficients such as in a finite impulse response (FIR) filter typically involves identifying the plurality of received signals, applying a delay and a weight to each signal, and performing the signal reconstruction with an FIR filter. Since the coefficients of an FIR filter must be computed from the delays and weights, this may require extensive computation complexity and computation time, and may not be achievable during the short preamble time of the incoming packet, where the coefficients must be computed before the packet data arrives.
FIG. 1 shows a wireless Local Area Network (LAN) operating in a typical office environment, wherein two mobile stations may be transmitting and receiving data through the wireless medium. While both station 100 and station 102 are typically transmitting and receiving wireless signals, for simplicity of analysis, station 100 is shown as a transmitter and station 102 is shown as a receiver. In the figure, receiver 102 receives a first signal from an attenuated path R1 112 r1 114 with an attenuating barrier 106, followed by the next signal with the path length R2 108 and reflection r2 220, followed by the next signal with the path length R3 116 and reflection r3 118. In this figure, a small number of such path reflections are shown, however as a practical matter, an infinite number of such reflection paths exist, shown generally by path Rn 120 and reflected path rn 222. In the wireless IEEE 802.11b protocol, the use of spread spectrum transmission and reception techniques improves the bit error rate (BER) in the presence of multi-path reflections to the receiver. However, the BER can be greatly reduced if the various reflections (r1 to rn) are used to make a decision at the receiver demodulator, rather than using the strongest (relatively) signal only, ignoring all other multi-path reflections present. Moreover, the absence of a direct path in such communications (as shown by path R1-r1) means that the information is highly dispersed and arrives strongly attenuated and through various path lengths so that the single correlation peak energy is spread out over many correlation peaks arriving at later times. A temporal Maximal Ratio Combiner (MRC) operating on the spread spectrum correlation peaks would give a much higher BER than a simple decision based on a single maximum peak. The combining of signal energy arriving at different times associated with the transmission of data is the basic principle on which the rake combiners for spread spectrum receivers operate. A plurality of weighted delays in the form of a Feed Forward Filter (FFF) is used to cause the various correlation peaks associated with the delayed arrival of a plurality of multipath reflections of a given codeword to recombine into a single peak. Additionally, since the multipath reflections cause the rotation of incoming codeword symbols out of their original quadrature channels, an additional function of the MRC is to apply phase compensation to rotate these symbols back in to the original quadrature channels, so that received signal energy is rotated back into the proper I and Q channels, thereby adding to the signal that is received on the direct path.
FIG. 2 shows a decision block for a direct sequence spread spectrum receiver 140 that includes a sliding correlator 130 which correlates the Barker codeword 131 with the signed incoming quadrature symbol stream 142. The incoming quadrature symbol stream 142 comprises an analytic signal formed by receiver quadrature mixing using the relationship ejφ(t)=cos(φ(t))+j*sin(φ(t)), where the first term represents in-phase (I) information in the real channel and the second term represents quadrature (Q) symbol information in the imaginary channel. Each channel of the incoming symbol stream is digitized using an Analog to Digital Converter into positive and negative values N-bit wide (where N is the width of the converter outputs), where the positive and negative values of the input stream contain Barker codewords:
I channel1 = {+1, −1, +1, +1, −1, +1, +1, +1, −1, −1, −1};0 = {−1, +1, −1, −1, +1, −1, −1, −1, +1, +1, +1}Q channel1 = {+j, −j, +j, +j, −j, +j, +j, +j, −j, −j, −j};0 = {−j, +j, −j, −j, +j, −j, −j, −j, +j, +j, +j}                where the Q channel codewords are simply the I channel codewords multiplied by j. A phase rotator function in the aforementioned receiver digital signal processing causes the symbols to be rotated into the I or Q channels of the correlator input 142.        
For an 11 bit Barker code, the soft (N-bit wide) I and Q channels are cross-correlated with the respective Barker codewords for 1. This cross-correlation of the input stream containing Barker codes for 1 produces the impulsive value +11, while the cross correlation of the input stream containing 0 produces the impulsive value −11. In this manner, the cross-correlation of the incoming data against the Barker codewords produces I and Q values which have a peak impulsive positive response for the 1 codeword, a peak impulsive negative response for the 0 codeword, and approximately 0 at all other times. Because of the impulsive nature of the cross correlation response, the incoming quadrature signal 142 is typically presented as an over-sampled signal at twice the bit rate, or 22 Mhz, so that information for compensating timing drift between the transmit and receive DAC and ADC clocks is retained in the digitized signal. Additionally as mentioned above, the incoming quadrature symbol stream is multi-valued rather than binary, so the correlation outputs 138 and 139 are an over-sampled, multi-valued quadrature data stream. The code acquisition function 132 maintains a correlation output history and determines the peak correlation points, which are used to produce a synchronization pulse accompanied by an indication for the start and end of the codeword window. Once codeword acquisition is achieved, the baseband Direct Sequence Spread Spectrum (DSSS) codewords 142 are presented to a simpler fixed window correlator 134, which performs a correlation 137 of the incoming quadrature symbol stream 142 to the Barker codeword 143. The multi-valued quadrature result of this cross correlation output 139 is stored in memory 135 at a synchronization time determined by code acquisition function 132, which presents a pulse at the point of maximum positive or negative signal, as described earlier. Decision block 136 examines the positive or negative value stored in memory 135, and decides whether a Barker codeword for 1 or 0 was received. For a 2 Mb data rate, the fixed window correlator 134 is separately correlating the I and Q streams with the Barker codeword, thereby storing in memory 135 1 bit of decision data from the I and Q stream for each 1 us codeword interval. For a 1 Mbps data rate, the phase encoding is in the I (or Q) channel alone, and the Q (or I) channel contains only correlation and thermal noise. For the 2 Mbps data rate, the number of possibilities double since now the receiver can get (1,0), (−1,0), (0,1) or (0,−1) in each 1 us duration, i.e., 2-bits of information every microsecond. The spread spectrum signal comprises one of the two 11 bit Barker codewords occurring within 1 us boundaries for IEEE 802.11b wireless communication systems. Examining the codeword output 138, the code acquisition function 132 of FIG. 2 stores several windows of samples and extracts a synchronization signal 144. This synchronization pulse and a window signal (shown as timing 151 in FIG. 3) to establish the framing of codewords is sent to the fixed window correlator 134 and to the decision function 136 which determines which chip code is the closest approximation. In direct sequence spread spectrum (DSSS) signals, chip codes that are dependant on the particular 802.11b data rates are used for encoding and decoding. These chip codes are Differential Binary Phase Shift Keying ((D)BPSK) using Barker codes for 1 Mbps, and Differential Quadrature Phase Shift Keying ((D)QPSK) using Barker codes for 2 Mbps. The higher data rates of 5.5 Mb and 11 Mb use Complementary Code Keying (CCK). In the present invention, we are concerned with 1 Mbps and 2 Mbps data rates using 11 bit Barker codes. It is essential that the decision block for a direct sequence spread spectrum receiver 140 of FIG. 2 properly synchronize to the peak and window of the 11 bit codewords, done during the preamble interval of the packet with sliding correlator 130. An unsynchronized stream of incoming codewords 142 is referred to as a symbol stream, and once the synchronization to the 11 bit codewords is accomplished, this is referred to as a codeword stream. The codeword stream is then converted into binary values comprising a data stream 148. Examining the quadrature multi-valued output of the sliding correlator 130, a datum point may be defined as the strongest correlation response of the present symbol. Pre-cursors are signals received prior to the datum point, and post-cursors are signals received after the datum point. The sample window includes pre-cursors, the datum point, post-cursors, and has a duration equal to a symbol length. Directly received signal in the presence of attenuation followed by multi-path reflection produces correlation output 138 which comprises pre-cursors, followed by the strongest correlation response of the present symbol earlier referred to as a datum point, and finally post-cursors representing the multipath reflections. In combination, these signals represent the total signal power available for use by the decision processor. Although received at different times, the sum of these signals in the channel represent the total signal power available. In one prior art receiver, the strongest correlation response is selected for synchronization signal 144 and the pre-cursors and post-cursors are ignored, which results in reduced signal to noise, since the noise level is constant while the signal power associated with the pre-cursor symbols and post-cursor symbols is discarded. It is desired to use a plurality of symbols including pre-cursors and post-cursors to generate a composite signal which uses the pre-cursors and post-cursors so that the signal to noise ratio is improved.
FIG. 3 shows waveform 150 of output 138 of the sliding correlator 130, both from FIG. 2, for a Barker codeword 1 followed by a Barker codeword 0 presented to the input 142 from FIG. 2. In the absence of multi-path reflection or noise, the sliding correlator 130 output 138 would appear as shown in curve 150 of FIG. 3. Every sample time, the incoming symbol stream 142 of Barker codes for 1 followed by 0 is correlated 133 with Barker codeword 131 in the sliding correlator 130, which produces the positive peak 152a followed by a negative peak 152b. These peaks are detected by code acquisition function 132, which uses an algorithm for defining a window comprising the timing points 0 through 10 151 of FIG. 3, as shown. Once this synchronization is achieved, the timing of the remainder of the Barker codewords may be maintained by the precision of the clock oscillators of the receiver and transmitter. The synchronization signal 144 is applied to fixed window correlator 134, which selects one of two codewords in the I (or Q) channel for a 1 Mb data rate, or one of four codeword combinations in the I and Q channel for a 2 Mb data rate. In the absence of noise or multi-path reflections, the decision block 140 for a direct sequence spread spectrum receiver 140 of FIG. 2 performs well, and the cross correlation of the Barker codeword 131 with the incoming symbol stream produces the correlator output 150 as shown in FIG. 3. In the presence of multi-path reflections, degradation of the cross correlation output 138 occurs. For example, given the signal paths shown in FIG. 1, an attenuated signal traveling path r1 114 followed by a stronger reflected signal r2 220, followed by a weaker reflected signal r3 118 would produce signal 154 comprising the attenuated response r1 156a, reflected and phase shifted maximum signal r2 158a, and reflected and attenuated signal r3 160a respectively as shown in FIG. 4. The phase rotator (not shown) which performs phase rotation of the incoming signal stream prior to delivery as stream 142 uses maximum level signals as the datum for this phase rotation. In FIG. 4, the phase rotation causes maximum responses 158a and 158b to be rotated in phase until they are aligned in the I channel. Using maximum response only, the code acquisition function 132 could incorrectly determine that r2 158a is code position 0 based on purely amplitude considerations, when the actual synchronization time is r1, as shown by the alignment with the time interval 0 155. FIG. 4 shows the I and Q components of the incoming signal, which have been phase rotated by the phase shifter (not shown), such that the strongest signal 158a has been shifted exclusively into the I channel, and precursor 156a is shifted in phase, as is postcursor reflection 160a, as evidenced by the shifting of energy into the Q channel for 156a and 160a. Similarly, for the 0 symbol, strongest signal 158b is only seen in the I channel, while precursor 156b and postcursor reflection 160b is shifted in phase.
FIG. 5 shows a prior art rake combiner 190 with the rake having three fingers. This allows for improved signal to noise performance and multi-path reflection reduction, and implements a function known as temporal maximal ratio combining (MRC). An MRC identifies a finite number of strongest signals, and combines them to rearrange the signal power of each of the delayed signals into a single signal with maximum power such that there is maximum likelihood of decoding the signal correctly. In FIG. 5, the baseband signal stream 194 is comprised of the FIG. 4 signals r1 156a, r2 158a occurring τ1 later, and r3 160a occurring τ2 thereafter. The code acquisition 162 generates a synchronization pulse 196 from the output of the sliding correlator 192, similar to sliding correlator 130 of FIG. 2, but delayed by τ1+τ2. The baseband symbol stream 194 is provided to correlator 168, and the same signal is provided to correlator 166 delayed by τ2, and to correlator 164 delayed by τ1+τ2. In this manner, at the instant of synchronization pulse 196, correlator 164 is providing signal associated with r1 in FIG. 4, correlator 166 is providing signal associated with r2 in FIG. 4, and correlator 168 is providing signal associated with r3 in FIG. 4. These signals are multiplied by a conjugated series of complex coefficients α0, α1, and α2, respectively. The conjugated complex coefficients α0 174, α1 176, and α2 178 are a linear array of complex numbers with a length equal to the length of the incoming signal stream window, repeated continuously, as it known to one skilled in the art of finite impulse response filters operating on periodic signals. The correlators 164, 166 and 168 are multiplied by the complex conjugate of the linear array of conjugated complex coefficients α0 174, α1 176, and α2 178, respectively. The conjugated complex coefficients α0 174, α1 176, and α2 178 reverses the sign of the imaginary part of the coefficient. For example, the complex conjugate of (a+jb) is (a−jb), and vice-versa. Multiplying a value by its complex conjugate has the effect of converting all of the signals in the imaginary channel into the real channel. The complex multi-valued outputs of multipliers 180, 182, and 184 are summed respectively by adder 186, and provided to decision block 188, which performs in the same manner as decision block 136 of FIG. 2.
FIG. 6 shows a maximal ratio combiner processor 201, where the signals and later reflections are delayed and multiplied by a linear array of conjugated complex coefficients α0 208, α1 210, and α2 212, then summed to form a signal containing maximum combined signal power. Similarly to the rake combining signal processing system of FIG. 5, the function of the MRC processor 201 is to delay pre-cursor signal 156a of FIG. 4 with delay element 204 and to delay the strongest symbol 158a of FIG. 4 with delay element 206 such that these signals align in time with post-cursor 160b of FIG. 4. The MRC processor 201 then multiplies each stream of pre-cursors, the strongest signal, and post-cursors separately with a linear array of conjugated complex coefficients α0 208, α1 210, and α2 212, respectively, and then sums the aligned and multiplied streams in adder 220, thereby producing reflection-compensated output 228. This reflection-compensated output 228 is then fed to correlator 222, which is gated by synchronization pulse 226 similar to synchronization pulse 196 in FIG. 5. The effect of multiplying by the conjugated complex coefficients α0 208, α1 210, and α2 212 is the phase rotation of reflected multi-path signals back into the proper channel. For both of the maximal ratio combiners in FIGS. 5 and 6, the computation of delay coefficients for delay elements 170 and 172 of FIG. 5, delay elements 204 and 206 of FIG. 6, as well as the linear arrays of conjugated complex coefficients α0 174, α1 176, and α2 178 in FIG. 5, and the linear arrays of conjugated complex coefficients α0 208, α1 210, and α2 212 in FIG. 6, are done based on the strongest correlation signals. These conjugated complex coefficients must be computed based on the amplitude and the phase of the particular pre-cursors and post-cursors present, which depends upon the nature of multipath present.
FIG. 7 shows the waveform for time-shifted cross correlation (normalized so that peak is one) for the 256 possible complementary code keying (CCK) codewords used in the 11 Mbps data rate of IEEE 802.11b wireless communication systems. It can be seen that the cross-correlation response (with time shifts of +/−7 symbols) of up to 0.4 times the peak (autocorrelation) rules out any major multipath tolerance of a system using the autocorrelation properties of CCK codewords to do an MRC combining. This has the additional implication that the maximal ratio combiner 201 of FIG. 6 could be placed in the signal processing stream for both the Barker and CCK codewords. This would not be possible with the rake combining signal processing system 190 of FIG. 5, since the multiplication and summing is done post-correlation. But FIG. 7 shows the CCK codeword response for cross-correlation is poor and hence any system relying on such an MRC combining for multipath tolerance would fail for the CCK rates under multipath.
FIG. 8 shows a waveform for the sliding correlation output for Barker codewords. The figure shows the 1 us timing and response of a noise-free signal presented to a sliding correlator operating at twice the bit rate, or 22 Mhz. FIG. 9 shows the waveform for the sliding correlation output for noise input—noise that would ordinarily be present with the signal of FIG. 8.